/* 获取这个月的月初和月末 */
export function getMonthStartEnd(vars) {
  var str = ''
  if (vars != null && vars !== '') {
    var nyYear = vars.slice(0, 4)
    var nyMonth = vars.slice(5, vars.length)
    var firstDay = new Date(nyYear, nyMonth - 1)
    var lastDay = new Date(new Date(nyYear, nyMonth).valueOf() - 60 * 60 * 1000 * 24)
    function datasFormat(d) {
      var datetime = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate()
      return datetime
    }
    str = datasFormat(firstDay) + '/' + datasFormat(lastDay)
  }
  return str
}
/* 计算季度 */
export function getQuarterDates(year, quarter) {
  const startDate = new Date(year, (quarter - 1) * 3, 1)
  const endDate = new Date(year, quarter * 3, 0)
 
  const startDay = startDate.getDate()
  const endDay = endDate.getDate()
 
  const startMonth = startDate.getMonth() + 1
  const endMonth = endDate.getMonth() + 1
 
  const startYear = startDate.getFullYear()
  const endYear = endDate.getFullYear()
 
  const startDateString =
		`${startYear}-${startMonth < 10 ? '0' + startMonth : startMonth}-${startDay < 10 ? '0' + startDay : startDay}`
  const endDateString =
		`${endYear}-${endMonth < 10 ? '0' + endMonth : endMonth}-${endDay < 10 ? '0' + endDay : endDay}`
 
  return {
    startDate: startDateString,
    endDate: endDateString
  }
}
// // 示例用法：计算2024年第2季度的起止日期
// const quarterDates = getQuarterDates(2024,2);
// console.log(quarterDates.startDate); // 输出：2024-04-01
// console.log(quarterDates.endDate);   // 输出：2024-06-30

/* 计算一年中的每一周都是从几号到几号
第一周为1月1日到 本年的 第一个周日
第二周为 本年的 第一个周一 往后推到周日
以此类推 再往后推52周。。。
如果最后一周在12月31日之前，则本年有垮了54周，反之53周
12月31 日不论是周几，都算为本周的最后一天
参数年份 ，函数返回一个数组，数组里的对象包含 这一周的开始日期和结束日期 */
export function whichWeek(year) {
  year = Number(year)
  var d = new Date(year, 0, 1)
  while (d.getDay() !== 1) {
    d.setDate(d.getDate() + 1)
  }
  let arr = []
  let longnum = d.setDate(d.getDate())
  if (longnum > +new Date(year, 0, 1)) {
    let obj = yearDay(+new Date(year, 0, 1) / 1000)
    obj.last = yearDay(longnum / 1000 - 86400)
    arr.push(obj)
  }
  let oneitem = yearDay(longnum / 1000)
  oneitem.last = yearDay(longnum / 1000 + 86400 * 6)
  arr.push(oneitem)
  var lastStr
  for (var i = 0; i < 51; i++) {
    let long = d.setDate(d.getDate() + 7)
    let obj = yearDay(long / 1000)
    obj.last = yearDay(long / 1000 + 86400 * 6)
    lastStr = long + 86400000 * 6
    arr.push(obj)
  }
  if (lastStr < +new Date(year + 1, 0, 1)) {
    let obj = yearDay(lastStr / 1000 + 86400)
    obj.last = yearDay(+new Date(year + 1, 0, 1) / 1000 - 86400)
    arr.push(obj)
  } else {
    arr[arr.length - 1].last = yearDay(+new Date(year + 1, 0, 1) / 1000 - 86400)
  }
  return arr
}
// //例如 2012 年就跨了54周，也有很多是53周的
// let week2012 = whichWeek(2012)
// console.log(week2012)

/* 时间戳转年月日  参数是秒的时间戳 函数返回一个对象 对象里有年 月 日 */
export function yearDay(long) {
  var time = new Date(long * 1000)
  var year = time.getFullYear()
  var month = (time.getMonth() + 1) < 10 ? '0' + (time.getMonth() + 1) : (time.getMonth() + 1)
  var date = time.getDate() < 10 ? '0' + time.getDate() : time.getDate() 
  var yearday = { year, month, date }
  return yearday
}

/* 日期：年-月-日 格式 */
export function yearMonthDay() {
  const date = new Date()
  // 方法一
  // const year = date.getFullYear()
  // const month = ('0' + (date.getMonth() + 1)).slice(-2)
  // const day = ('0' + date.getDate()).slice(-2)
  // const formattedDate = `${year}-${month}-${day}`
  // 方法二
  const formattedDate = date.toISOString().substring(0, 10)
  return formattedDate
}
